这段代码(取自这篇文章)已经阻止我Error: 'null' is null or not an object
在IE8中尝试使用时收到错误消息()preventDefault()
$(document).ready(function () { $("#submitBtn").on("click", pD(event)); }); function pD(e) { e = event || window.event; if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } }
它似乎工作.然而,这篇文章中的评论(第四评论下来)让我担心这可能是一个糟糕的方法.它在某种程度上是可接受的还是不可接受的?评论的语言非常强,所以这让我很好奇.
首先,您分配点击处理程序的方式不正确:
$("#submitBtn").on("click", pD(event));
您正在调用该pD()
函数并将其返回值传递给该.on()
方法.您只需要传递对该函数的引用:
$("#submitBtn").on("click", pD);
其次,您正在使用jQuery,因此您不需要测试e
参数并将其设置为,window.event
因为jQuery会为您处理这些兼容性问题.您可以使用e.preventDefault()
知道jQuery将实现它.